/**
 * TDS PEC 4
 * Grupo 3H2M 
 *
 * El paquete <code>edu.uoc.tds.pec4.conexion</code> agrupa todas las
 * interfaces, clases y elementos de la GUI para el control del subsistema de Conexion
 */
package edu.uoc.tds.pec4.conexion;

import edu.uoc.tds.pec4.rmi.GestorConexionInterface;
import edu.uoc.tds.pec4.aulas.JIFListadoSolicitudes;
import edu.uoc.tds.pec4.aulas.JIFListadoReservas;
import edu.uoc.tds.pec4.beans.RolDTO;
import edu.uoc.tds.pec4.beans.UsuarioDTO;
import edu.uoc.tds.pec4.rmi.GestorDiccionarioInterface;
import edu.uoc.tds.pec4.common.util.TDSLanguageUtils;
import edu.uoc.tds.pec4.common.util.UtilidadesGUI;
import edu.uoc.tds.pec4.estadisticas.JIFRankingAulas;
import edu.uoc.tds.pec4.estadisticas.JIFRankingClientes;
import edu.uoc.tds.pec4.estadisticas.JIFRankingLocalizaciones;
import edu.uoc.tds.pec4.estadisticas.JIFRentabilidadAulas;
import edu.uoc.tds.pec4.estadisticas.JIFRentabilidadClientes;
import edu.uoc.tds.pec4.estadisticas.JIFRentabilidadLocalizaciones;
import edu.uoc.tds.pec4.mantenimiento.DialogAltaAula;
import edu.uoc.tds.pec4.mantenimiento.DialogAltaEquipamiento;
import edu.uoc.tds.pec4.mantenimiento.DialogAltaUsuario;
import edu.uoc.tds.pec4.mantenimiento.DialogBuscaAula;
import edu.uoc.tds.pec4.mantenimiento.DialogBuscaUsuario;
import edu.uoc.tds.pec4.mantenimiento.DialogConsultaEquipamiento;
import edu.uoc.tds.pec4.server.bbdd.exceptions.GestorConexionException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.JOptionPane;

/**
 * La clase <code>Cliente</code> representa la interfaz de
 * usuario general del programa para poder acceder a las demás
 * opciones.<br />
 *
 * Interficie de usuario general del programa.
 *
 * @author	Jaime Marcos de la Calle
 * @version	28/11/2011
 */
public class Cliente extends javax.swing.JFrame {

    UsuarioDTO usuario = null;
    boolean cliente = false;
    JIFListadoSolicitudes jifListadoSolicitudes = null;
    JIFListadoReservas jifListadoReservas = null;
    JIFListadoSolicitudesCliente jifListadoSolicitudesCliente = null;
    private GestorDiccionarioInterface objRemotoDic = null;
    private GestorConexionInterface objRemoto = null;
    /** Variables de control para las pantallas de informes **/
    JIFRankingAulas jifRankingAulas = null;
    JIFRankingLocalizaciones jifRankingLocalizaciones = null;
    JIFRankingClientes jifRankingClientes = null;
    JIFRentabilidadAulas jifRentabilidadAulas = null;
    JIFRentabilidadLocalizaciones jifRentabilidadLocalizaciones = null;
    JIFRentabilidadClientes jifRentabilidadClientes = null;
    JIFListadoReservasCliente jifListadoReservasCliente = null;
    
    private javax.swing.JDesktopPane jDesktopPaneCliente;
    private javax.swing.JLabel jLabelLogotipo;
    private javax.swing.JMenuItem jMItemActualEquip;
    private javax.swing.JMenuItem jMItemActualEspacio;
    private javax.swing.JMenuItem jMItemActualUsuarios;
    private javax.swing.JMenuItem jMItemAltaEquip;
    private javax.swing.JMenuItem jMItemAltaEspacio;
    private javax.swing.JMenuItem jMItemAltaUsuarios;
    private javax.swing.JMenu jMenuAulas;
    private javax.swing.JMenu jMenuAyuda;
    private javax.swing.JMenuBar jMenuBarCliente;
    private javax.swing.JMenu jMenuCliente;
    private javax.swing.JMenu jMenuInfRankings;
    private javax.swing.JMenu jMenuInfRendibilidades;
    private javax.swing.JMenu jMenuInformes;
    private javax.swing.JMenuItem jMenuItemCancelarReserva;
    private javax.swing.JMenuItem jMenuItemCancelarSolicitud;
    private javax.swing.JMenuItem jMenuItemGestionReserva;
    private javax.swing.JMenuItem jMenuItemGestionSolicitud;
    private javax.swing.JMenuItem jMenuItemInfRankAulas;
    private javax.swing.JMenuItem jMenuItemInfRankClientes;
    private javax.swing.JMenuItem jMenuItemInfRankLocal;
    private javax.swing.JMenuItem jMenuItemInfRenAulas;
    private javax.swing.JMenuItem jMenuItemInfRenClientes;
    private javax.swing.JMenuItem jMenuItemInfRenLocal;
    private javax.swing.JMenuItem jMenuItemSolicitarEspacio;
    private javax.swing.JMenuItem jMenuItemUsuarioCerrarSesion;
    private javax.swing.JMenuItem jMenuItemUsuarioInfo;
    private javax.swing.JMenuItem jMenuItemUsuarioSalir;
    private javax.swing.JMenu jMenuMantEquipamiento;
    private javax.swing.JMenu jMenuMantEspacios;
    private javax.swing.JMenu jMenuMantUsuarios;
    private javax.swing.JMenu jMenuMantenimiento;
    private javax.swing.JMenu jMenuUsuario;

    /** Creates new form Cliente */
    public Cliente(UsuarioDTO usuario, GestorConexionInterface objRemoto, GestorDiccionarioInterface objRemotoDic) {
        initComponents();
        this.usuario = usuario;
        this.objRemoto = objRemoto;
        this.objRemotoDic = objRemotoDic;
        personalizarPantalla(objRemoto);

        //Situamos el tamaño
        setSize(1000, 800);

        //Centramos la ventana en la pantalla
        UtilidadesGUI.centrarVentana(this);

        //Centramos el logotipo
        UtilidadesGUI.centrarVentana(jLabelLogotipo, this);
    }

    /*Devuelve el usuario de entrada a la aplicación
     * 
     */
    public UsuarioDTO getUsuario() {
        return usuario;
    }

    /** Clase que situa en el menú las funciones que están acordes al rol del usuario
     * de entrada en el sistema.
     * 
     * @param objRemoto Interface de entrada de GestorConexion
     */
    
    void personalizarPantalla(GestorConexionInterface objRemoto) {
        jMenuUsuario.setVisible(false);
        jMenuMantenimiento.setVisible(false);
        jMenuCliente.setVisible(false);
        jMenuAulas.setVisible(false);
        jMenuInformes.setVisible(false);
        jMenuAyuda.setVisible(false);

        Iterator<RolDTO> it = getRoles(objRemoto).iterator();
        while (it.hasNext()) {
            switch (it.next().getIdRol()) {
                //            Tecnico
                case 1:

                    jMenuUsuario.setVisible(true);
                    jMenuAulas.setVisible(true);
                    jMenuInformes.setVisible(true);
                    jMenuAyuda.setVisible(true);
                    break; 
                //             Cliente
                case 2:
                    jMenuUsuario.setVisible(true);
                    jMenuCliente.setVisible(true);
                    jMenuAyuda.setVisible(true);
                    cliente = true;
                    break;
                //            Administrador
                case 3:
                    jMenuUsuario.setVisible(true);
                    jMenuMantenimiento.setVisible(true);
                    jMenuAyuda.setVisible(true);
                    break;
            }
        }
    }

    /* Obtiene los roles del usuario de entrada
     * 
     * @param objRemoto Interface de entrada de GestorConexion
     */
    private List<RolDTO> getRoles(GestorConexionInterface objRemoto) {
        List<RolDTO> roles = new ArrayList<RolDTO>();
        try {
            roles = objRemoto.consultarRoles(usuario.getIdUsuario());

        } catch (RemoteException ex) {
            JOptionPane.showMessageDialog(null,
                    ex.getMessage(), TDSLanguageUtils.getMessage("conexion.error.cliente"),
                    JOptionPane.ERROR_MESSAGE);
        } catch (GestorConexionException ex) {
            JOptionPane.showMessageDialog(null,
                    ex.getMessage(),TDSLanguageUtils.getMessage("conexion.error.cliente"),
                    JOptionPane.ERROR_MESSAGE);
        }
        return roles;
    }

    /** Inicializa los componentes del cliente
     * 
     */
    private void initComponents() {

        jDesktopPaneCliente = new javax.swing.JDesktopPane();
        jLabelLogotipo = new javax.swing.JLabel();
        jMenuBarCliente = new javax.swing.JMenuBar();
        jMenuUsuario = new javax.swing.JMenu();
        jMenuItemUsuarioInfo = new javax.swing.JMenuItem();
        jMenuItemUsuarioCerrarSesion = new javax.swing.JMenuItem();
        jMenuItemUsuarioSalir = new javax.swing.JMenuItem();
        jMenuMantenimiento = new javax.swing.JMenu();
        jMenuMantUsuarios = new javax.swing.JMenu();
        jMItemAltaUsuarios = new javax.swing.JMenuItem();
        jMItemActualUsuarios = new javax.swing.JMenuItem();
        jMenuMantEspacios = new javax.swing.JMenu();
        jMItemAltaEspacio = new javax.swing.JMenuItem();
        jMItemActualEspacio = new javax.swing.JMenuItem();
        jMenuMantEquipamiento = new javax.swing.JMenu();
        jMItemAltaEquip = new javax.swing.JMenuItem();
        jMItemActualEquip = new javax.swing.JMenuItem();
        jMenuCliente = new javax.swing.JMenu();
        jMenuItemSolicitarEspacio = new javax.swing.JMenuItem();
        jMenuItemCancelarSolicitud = new javax.swing.JMenuItem();
        jMenuItemCancelarReserva = new javax.swing.JMenuItem();
        jMenuAulas = new javax.swing.JMenu();
        jMenuItemGestionSolicitud = new javax.swing.JMenuItem();
        jMenuItemGestionReserva = new javax.swing.JMenuItem();
        jMenuInformes = new javax.swing.JMenu();
        jMenuInfRankings = new javax.swing.JMenu();
        jMenuItemInfRankAulas = new javax.swing.JMenuItem();
        jMenuItemInfRankLocal = new javax.swing.JMenuItem();
        jMenuItemInfRankClientes = new javax.swing.JMenuItem();
        jMenuInfRendibilidades = new javax.swing.JMenu();
        jMenuItemInfRenClientes = new javax.swing.JMenuItem();
        jMenuItemInfRenAulas = new javax.swing.JMenuItem();
        jMenuItemInfRenLocal = new javax.swing.JMenuItem();
        jMenuAyuda = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle(TDSLanguageUtils.getMessage("cliente.titulo"));

        jDesktopPaneCliente.setBackground(new java.awt.Color(240, 240, 240));

        jLabelLogotipo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelLogotipo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/img.jpg"))); // NOI18N
        jLabelLogotipo.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jLabelLogotipo.setBounds(180, 220, 250, 110);
        jDesktopPaneCliente.add(jLabelLogotipo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jMenuUsuario.setText(TDSLanguageUtils.getMessage("cliente.usuario"));

        jMenuItemUsuarioInfo.setText(TDSLanguageUtils.getMessage("cliente.miinformacion"));
        jMenuItemUsuarioInfo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUsuarioInfoActionPerformed(evt);
            }
        });
        jMenuUsuario.add(jMenuItemUsuarioInfo);

        jMenuItemUsuarioCerrarSesion.setText(TDSLanguageUtils.getMessage("cliente.cerrarsesion"));
        jMenuItemUsuarioCerrarSesion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUsuarioCerrarSesionActionPerformed(evt);
            }
        });
        jMenuUsuario.add(jMenuItemUsuarioCerrarSesion);

        jMenuItemUsuarioSalir.setText(TDSLanguageUtils.getMessage("cliente.salir"));
        jMenuItemUsuarioSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemUsuarioSalirActionPerformed(evt);
            }
        });
        jMenuUsuario.add(jMenuItemUsuarioSalir);

        jMenuBarCliente.add(jMenuUsuario);

        jMenuMantenimiento.setText(TDSLanguageUtils.getMessage("cliente.mantenimiento"));

        jMenuMantUsuarios.setText(TDSLanguageUtils.getMessage("cliente.gestionusuario"));

        jMItemAltaUsuarios.setText(TDSLanguageUtils.getMessage("cliente.altausuario"));
        jMItemAltaUsuarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMItemAltaUsuariosActionPerformed(evt);
            }
        });
        jMenuMantUsuarios.add(jMItemAltaUsuarios);

        jMItemActualUsuarios.setText(TDSLanguageUtils.getMessage("cliente.consultaactusuario"));
        jMItemActualUsuarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMItemActualUsuariosActionPerformed(evt);
            }
        });
        jMenuMantUsuarios.add(jMItemActualUsuarios);

        jMenuMantenimiento.add(jMenuMantUsuarios);

        jMenuMantEspacios.setText(TDSLanguageUtils.getMessage("cliente.gestionespacios"));

        jMItemAltaEspacio.setText(TDSLanguageUtils.getMessage("cliente.altaespacio"));
        jMItemAltaEspacio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMItemAltaEspacioActionPerformed(evt);
            }
        });
        jMenuMantEspacios.add(jMItemAltaEspacio);

        jMItemActualEspacio.setText(TDSLanguageUtils.getMessage("cliente.consactespacio"));
        jMItemActualEspacio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMItemActualEspacioActionPerformed(evt);
            }
        });
        jMenuMantEspacios.add(jMItemActualEspacio);

        jMenuMantenimiento.add(jMenuMantEspacios);

        jMenuMantEquipamiento.setText(TDSLanguageUtils.getMessage("cliente.gestequipamientos"));

        jMItemAltaEquip.setText(TDSLanguageUtils.getMessage("cliente.altaequipamiento"));
        jMItemAltaEquip.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMItemAltaEquipActionPerformed(evt);
            }
        });
        jMenuMantEquipamiento.add(jMItemAltaEquip);

        jMItemActualEquip.setText(TDSLanguageUtils.getMessage("cliente.consactequipamiento"));
        jMItemActualEquip.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMItemActualEquipActionPerformed(evt);
            }
        });
        jMenuMantEquipamiento.add(jMItemActualEquip);

        jMenuMantenimiento.add(jMenuMantEquipamiento);

        jMenuBarCliente.add(jMenuMantenimiento);

        jMenuCliente.setText(TDSLanguageUtils.getMessage("cliente.cliente"));

        jMenuItemSolicitarEspacio.setText(TDSLanguageUtils.getMessage("cliente.solicitarespacio"));
        jMenuItemSolicitarEspacio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemSolicitarEspacioActionPerformed(evt);
            }
        });
        jMenuCliente.add(jMenuItemSolicitarEspacio);

        jMenuItemCancelarSolicitud.setText(TDSLanguageUtils.getMessage("cliente.cancelarsolicitud"));
        jMenuItemCancelarSolicitud.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemCancelarSolicitudActionPerformed(evt);
            }
        });
        jMenuCliente.add(jMenuItemCancelarSolicitud);

        jMenuItemCancelarReserva.setText(TDSLanguageUtils.getMessage("cliente.cancelarreserva"));
        jMenuItemCancelarReserva.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemCancelarReservaActionPerformed(evt);
            }
        });
        jMenuCliente.add(jMenuItemCancelarReserva);

        jMenuBarCliente.add(jMenuCliente);

        jMenuAulas.setText(TDSLanguageUtils.getMessage("cliente.aulas"));

        jMenuItemGestionSolicitud.setText(TDSLanguageUtils.getMessage("cliente.gestsolicitudes"));
        jMenuItemGestionSolicitud.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemGestionSolicitudActionPerformed(evt);
            }
        });
        jMenuAulas.add(jMenuItemGestionSolicitud);

        jMenuItemGestionReserva.setText(TDSLanguageUtils.getMessage("cliente.gestreservas"));
        jMenuItemGestionReserva.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemGestionReservaActionPerformed(evt);
            }
        });
        jMenuAulas.add(jMenuItemGestionReserva);

        jMenuBarCliente.add(jMenuAulas);

        jMenuInformes.setText(TDSLanguageUtils.getMessage("estadistica.menu.principal"));

        jMenuInfRankings.setText(TDSLanguageUtils.getMessage("estadistica.menu.ranking"));

        jMenuItemInfRankAulas.setText(TDSLanguageUtils.getMessage("estadistica.menu.ranking.aula"));
        jMenuItemInfRankAulas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInfRankAulasActionPerformed(evt);
            }
        });
        jMenuInfRankings.add(jMenuItemInfRankAulas);

        jMenuItemInfRankLocal.setText(TDSLanguageUtils.getMessage("estadistica.menu.ranking.localizacion"));
        jMenuItemInfRankLocal.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInfRankLocalActionPerformed(evt);
            }
        });
        jMenuInfRankings.add(jMenuItemInfRankLocal);

        jMenuItemInfRankClientes.setText(TDSLanguageUtils.getMessage("estadistica.menu.ranking.cliente"));
        jMenuItemInfRankClientes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInfRankClientesActionPerformed(evt);
            }
        });
        jMenuInfRankings.add(jMenuItemInfRankClientes);

        jMenuInformes.add(jMenuInfRankings);

        jMenuInfRendibilidades.setText(TDSLanguageUtils.getMessage("estadistica.menu.rentabilidad"));

        jMenuItemInfRenClientes.setText(TDSLanguageUtils.getMessage("estadistica.menu.rentabilidad.cliente"));
        jMenuItemInfRenClientes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInfRenClientesActionPerformed(evt);
            }
        });
        jMenuInfRendibilidades.add(jMenuItemInfRenClientes);

        jMenuItemInfRenAulas.setText(TDSLanguageUtils.getMessage("estadistica.menu.rentabilidad.aula"));
        jMenuItemInfRenAulas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInfRenAulasActionPerformed(evt);
            }
        });
        jMenuInfRendibilidades.add(jMenuItemInfRenAulas);

        jMenuItemInfRenLocal.setText(TDSLanguageUtils.getMessage("estadistica.menu.rentabilidad.localizacion"));
        jMenuItemInfRenLocal.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemInfRenLocalActionPerformed(evt);
            }
        });
        jMenuInfRendibilidades.add(jMenuItemInfRenLocal);

        jMenuInformes.add(jMenuInfRendibilidades);

        jMenuBarCliente.add(jMenuInformes);

        jMenuAyuda.setText(TDSLanguageUtils.getMessage("cliente.ayuda"));
        jMenuBarCliente.add(jMenuAyuda);
        jMenuAyuda.setEnabled(false);

        setJMenuBar(jMenuBarCliente);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jDesktopPaneCliente, javax.swing.GroupLayout.DEFAULT_SIZE, 623, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jDesktopPaneCliente, javax.swing.GroupLayout.DEFAULT_SIZE, 572, Short.MAX_VALUE)
        );

        pack();
}

    /*Cierra la sesion del usuario actual y vuelve a pedir el login
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemUsuarioCerrarSesionActionPerformed(java.awt.event.ActionEvent evt) {
        dispose();
        Login login = new Login();
        login.setVisible(true);
   }
   
    /* Cierra el programa cliente
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemUsuarioSalirActionPerformed(java.awt.event.ActionEvent evt) {
        System.exit(0);
        }
    
    /* Abre pantalla para mostrar los datos personales del usuario
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemUsuarioInfoActionPerformed(java.awt.event.ActionEvent evt) {

        if (cliente) {
            DialogDatosCliente dlDatosCliente = new DialogDatosCliente(this, true, usuario);
        } else {
            DialogDatosEmpleado dlDatosEmpleado = new DialogDatosEmpleado(this, true, usuario);

        }
}
    
    /* Muestra el Ranking de aulas
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemInfRankAulasActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifRankingAulas == null) {
            jifRankingAulas = new JIFRankingAulas();
        }
        jDesktopPaneCliente.remove(jifRankingAulas);
        jDesktopPaneCliente.add(jifRankingAulas);
        jifRankingAulas.setVisible(true);
        jifRankingAulas.toFront();
    }
    
    /* Muestra el Ranking de aulas
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemInfRankClientesActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifRankingClientes == null) {
            jifRankingClientes = new JIFRankingClientes();
        }
        jDesktopPaneCliente.remove(jifRankingClientes);
        jDesktopPaneCliente.add(jifRankingClientes);
        jifRankingClientes.setVisible(true);
        jifRankingClientes.toFront();
    }

     /* Muestra el Ranking de localizaciones
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemInfRankLocalActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifRankingLocalizaciones == null) {
            jifRankingLocalizaciones = new JIFRankingLocalizaciones();
        }
        jDesktopPaneCliente.remove(jifRankingLocalizaciones);
        jDesktopPaneCliente.add(jifRankingLocalizaciones);
        jifRankingLocalizaciones.setVisible(true);
        jifRankingLocalizaciones.toFront();
    }
    
    /* Muestra el Ranking de clientes
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemInfRenClientesActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifRentabilidadClientes == null) {
            jifRentabilidadClientes = new JIFRentabilidadClientes();
        }
        jDesktopPaneCliente.remove(jifRentabilidadClientes);
        jDesktopPaneCliente.add(jifRentabilidadClientes);
        jifRentabilidadClientes.setVisible(true);
        jifRentabilidadClientes.toFront();
    }

    /* Muestra el Ranking de rentabilidad de Aulas
     * 
     * @param evt Evento disparador del método
     * 
     */    
    private void jMenuItemInfRenAulasActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifRentabilidadAulas == null) {
            jifRentabilidadAulas = new JIFRentabilidadAulas();
        }
        jDesktopPaneCliente.remove(jifRentabilidadAulas);
        jDesktopPaneCliente.add(jifRentabilidadAulas);
        jifRentabilidadAulas.setVisible(true);
        jifRentabilidadAulas.toFront();
    }

    /* Muestra el Ranking de rentabilidad de localizaciones
     * 
     * @param evt Evento disparador del método
     * 
     */    
    private void jMenuItemInfRenLocalActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifRentabilidadLocalizaciones == null) {
            jifRentabilidadLocalizaciones = new JIFRentabilidadLocalizaciones();
        }
        jDesktopPaneCliente.remove(jifRentabilidadLocalizaciones);
        jDesktopPaneCliente.add(jifRentabilidadLocalizaciones);
        jifRentabilidadLocalizaciones.setVisible(true);
        jifRentabilidadLocalizaciones.toFront();
    }

     /* Muestra la pantalla de solicitud de un espacio
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMenuItemSolicitarEspacioActionPerformed(java.awt.event.ActionEvent evt) {
        DialogSolicitudEspacio dlSolicitudEspacio = new DialogSolicitudEspacio(this, true, usuario, objRemotoDic, objRemoto);
}

     /* Muestra la pantalla de alta de equipamiento
     * 
     * @param evt Evento disparador del método
     * 
     */
    private void jMItemAltaEquipActionPerformed(java.awt.event.ActionEvent evt) {
        DialogAltaEquipamiento dlgAltaEquipamiento = new DialogAltaEquipamiento(this, true, usuario);
        dlgAltaEquipamiento.setVisible(true);
}

     /* Muestra la pantalla de actualizar equipamiento
     * 
     * @param evt Evento disparador del método
     * 
     */    
    private void jMItemActualEquipActionPerformed(java.awt.event.ActionEvent evt) {
        DialogConsultaEquipamiento dlgConsultaEquipamiento = new DialogConsultaEquipamiento(this, true, usuario);
        dlgConsultaEquipamiento.setVisible(true);
    }

     /* Muestra la pantalla de cancelar solicitud
     * 
     * @param evt Evento disparador del método
     * 
     */    
    private void jMenuItemCancelarSolicitudActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifListadoSolicitudesCliente == null) {
            jifListadoSolicitudesCliente = new JIFListadoSolicitudesCliente(objRemoto, objRemotoDic, usuario.getIdUsuario());
        }
        jDesktopPaneCliente.remove(jifListadoSolicitudesCliente);
        jDesktopPaneCliente.add(jifListadoSolicitudesCliente);
        jifListadoSolicitudesCliente.setVisible(true);
        jifListadoSolicitudesCliente.toFront();
    }

     /* Muestra la pantalla de gestion de solicitud
     * 
     * @param evt Evento disparador del método
     * 
     */       
    private void jMenuItemGestionSolicitudActionPerformed(java.awt.event.ActionEvent evt) {
    if (jifListadoSolicitudes==null) {
                jifListadoSolicitudes = new JIFListadoSolicitudes(usuario);
            }
            jDesktopPaneCliente.remove(jifListadoSolicitudes);
            jDesktopPaneCliente.add(jifListadoSolicitudes);
            jifListadoSolicitudes.setVisible(true);
            jifListadoSolicitudes.toFront();// TODO add your handling code here:
    }

     /* Muestra la pantalla de gestion de reserva
     * 
     * @param evt Evento disparador del método
     * 
     */       
    private void jMenuItemGestionReservaActionPerformed(java.awt.event.ActionEvent evt) {
    if (jifListadoReservas==null) {
                jifListadoReservas = new JIFListadoReservas(usuario);
            }
            jDesktopPaneCliente.remove(jifListadoReservas);
            jDesktopPaneCliente.add(jifListadoReservas);
            jifListadoReservas.setVisible(true);
            jifListadoReservas.toFront();
    }

     /* Muestra la pantalla de alta de usuario
     * 
     * @param evt Evento disparador del método
     * 
     */   
    private void jMItemAltaUsuariosActionPerformed(java.awt.event.ActionEvent evt) {
        DialogAltaUsuario dlgAltaUsuario = new DialogAltaUsuario(this, true, usuario);
        dlgAltaUsuario.setVisible(true);
    }

     /* Muestra la pantalla de búsqueda de usuario
     * 
     * @param evt Evento disparador del método
     * 
     */       
    private void jMItemActualUsuariosActionPerformed(java.awt.event.ActionEvent evt) {
        DialogBuscaUsuario dlgBuscaUsuario = new DialogBuscaUsuario(this, true, usuario);
        dlgBuscaUsuario.setVisible(true);
}

     /* Muestra la pantalla de Alta de Espacio
     * 
     * @param evt Evento disparador del método
     * 
     */     
    private void jMItemAltaEspacioActionPerformed(java.awt.event.ActionEvent evt) {
        DialogAltaAula dlgAltaAula = new DialogAltaAula(this, true, usuario);
        dlgAltaAula.setVisible(true);
}

     /* Muestra la pantalla de búsqueda de espacio
     * 
     * @param evt Evento disparador del método
     * 
     */     
    private void jMItemActualEspacioActionPerformed(java.awt.event.ActionEvent evt) {
        DialogBuscaAula dlgBuscaAula = new DialogBuscaAula(this, true, usuario);
        dlgBuscaAula.setVisible(true);
    }

     /* Muestra la pantalla de cancelar reserva de usuario
     * 
     * @param evt Evento disparador del método
     * 
     */     
    private void jMenuItemCancelarReservaActionPerformed(java.awt.event.ActionEvent evt) {
        if (jifListadoReservasCliente==null) {
            jifListadoReservasCliente = new JIFListadoReservasCliente(objRemoto,objRemotoDic,usuario.getIdUsuario());
        }
        jDesktopPaneCliente.remove(jifListadoReservasCliente);
        jDesktopPaneCliente.add(jifListadoReservasCliente);
        jifListadoReservasCliente.setVisible(true);
        jifListadoReservasCliente.toFront();
        
    }
}
